home *** CD-ROM | disk | FTP | other *** search
/ Hackers Handbook - Millenium Edition / Hackers Handbook.iso / files / c_scripts / scanport-wr.perl < prev    next >
Text File  |  1998-12-05  |  2KB  |  99 lines

  1. #!/usr/bin/perl
  2. #############################################################
  3. #
  4. # ScanPort v1.0
  5. # Written By: Samuel Sparling (sparling@slip.net)
  6. #
  7. # Copyright ⌐ 1998 Samuel Sparling
  8. # All Rights Reserved.
  9. #
  10. # Thanks to gargan for the idea of a perl port scanner
  11. #
  12. # Tested on: 
  13. # Windows 95 w/ ActiveWare's perl for Win32 (perl 5.003_07)
  14. # SunOS 5.6 w/ perl 5.004_04
  15. # Red Hat Linux 5.1 w/ perl 5.004_04
  16. #
  17. #############################################################
  18. #
  19. use Socket;
  20.  
  21. print "ScanPort v1.0\n\n";
  22. print "Host: ";
  23. $remote=<STDIN>;
  24. chop($remote) if $remote =~ /\n$/;
  25.  
  26. print "Start Port: ";
  27. $start=<STDIN>;
  28. chop($start) if $start =~ /\n$/;
  29.  
  30. print "Stop Port: ";
  31. $stop=<STDIN>;
  32. chop($stop) if $stop =~ /\n$/;
  33.  
  34. print "Log Session?(y/n)";
  35. $yn=<STDIN>;
  36.  
  37. if($yn =~ /y/i)
  38.     $log = 1; 
  39.     $logfile="$remote".".scan";
  40.  
  41.     print "Log File [$logfile]: ";
  42.     $file=<STDIN>;
  43.     chop($file) if $file =~ /\n$/;
  44.  
  45.     if($file ne "") 
  46.     {
  47.         $logfile=$file;
  48.     }
  49.     open(LOG,">>$logfile") || die("Unable to write to $logfile!");
  50. }
  51.  
  52.  
  53. $time = localtime(time);
  54.  
  55. print "\nScanning ports $start to $stop on $remote at $time\n\n";
  56.     if($log == 1)
  57.     {
  58.         print LOG "\nScanning ports $start to $stop on $remote at $time\n\n";
  59.     }
  60.     $current=$start;
  61.     while($current < $stop)
  62.     {
  63.         &scan_port($current);
  64.         $current++;
  65.     }
  66.  
  67. $time = localtime(time);
  68. print "\nFinished scan of $remote at $time\n";
  69.     if($log == 1)
  70.     {
  71.         print LOG "\nFinished scan of $remote at $time\n";
  72.         close(LOG);
  73.     }
  74.  
  75. sub scan_port
  76. {
  77. $port = shift(@_);
  78.  
  79.     if ($port =~ /\D/) { $port = getservbyname($port, 'tcp'); }
  80.     die("No port specified.") unless $port;
  81.     $iaddr = inet_aton($remote) || die("Failed to find host: $remote");
  82.     $paddr = sockaddr_in($port, $iaddr);
  83.     $proto = getprotobyname('tcp');
  84.     socket(SOCK, PF_INET, SOCK_STREAM, $proto) || die("Failed to open socket: $!");
  85.     if(connect(SOCK, $paddr))# || die("Unable to connect: $!");
  86.     {
  87.         print "Listening on port: $port\n";
  88.         if($log == 1)
  89.         {
  90.             print LOG "Listening on port: $port\n";
  91.         }
  92.     }
  93.     close(SOCK);
  94. }
  95.  
  96.  
  97. exit;
  98.